In a cloud computing environment, applications and systems are becoming more and more complex, as many of the components in these applications and systems are delivered as cloud-based services such as database-as-a-service, search-as-a-service, etc. For example, a simple web-based application may easily include more than 10 services and components (including web-tier, application-server-as-service, database-as-service, and query-as-service), that may be designed and supported by different development teams. Thus, identifying problems and diagnosing potential root causes of these problems in such an environment may become a challenging task for developer and IT team due to growing complexity of this environment.